In the prior art, a coded modulation method of tail-biting convolutional code, which is illustrated by taking a tail-biting convolutional code used in a long term evolution (LTE) system as an example, is introduced. A (3, 1, 6) coder is as shown in FIG. 1. A constraint length of the coder is 7 and a code rate is ⅓. In FIG. 1, a binary sequence for generating a polynomial Gi (i=0, 1, 2) represents the input data and a connection status of 6 shift registers D and the output of the ith path of a coder. The binary 0 represents disconnected status and the binary 1 represents connected status. In FIG. 1, an adder is used in a GF(2) domain. An initial state of a shift register is the last 6 bits of the input bit sequence. η0, η1, η2, . . . , η5 represent the 6 shift registers in sequence. The input bit sequence of the channel coding is marked as c0, c1, c2, c3, . . . , cK−1 and the bit sequence length is K. The bit sequence output by the ith path after coding is marked as d0(i), d1(i), d2(i), . . . , dD−1(i), in which the D is the sequence length, and D=K for the tail-biting convolutional code. At the initial state, ηi=c(K−1−i) (i=0, 1, . . . 5), so that when the input bit sequence is ended, the state of the shift register is the same with the initial state when the coding starts.
A Viterbi decoding algorithm of a convolutional code is introduced in the following. It is assumed that a convolutional code coder inputs a bit data at a time. A state collection of the coder is set to be S={s1,s2, . . . , sN}, in which the N is the total number of states, and N=2M. The M is the number of the shift registers in the coder, and the shift registers are marked as η0, η1, η2, . . . , ηM−1. The C={c0,c1,c2,c3, . . . , cK−1} is set to be the coding input sequence, in which K is the sequence length. The Bit ck (having a value of 0 or 1) is sent into the coder at a moment t=k (k=0, 1, . . . , K−1) and it is assumed that the delay of the coder is 1, so that at a moment t=k+1, the coding of the bit ck is completed and the bit ck+1 enters the coder. The coding output of ck is dk(i) (i=1, 2, . . . , R), in which the R is a reciprocal of the convolutional code rate. The output sequence of the coder is marked as:D={d0(1),d0(2), . . . , d0(R),d1(1), . . . , dK−1(1),dK−1(2), . . . , dK−1(R)}.
The transmission sequence after mapping 0→−1, 1→1 is (transmission energy is 1):E={e0(1),e0(2), . . . , e0(R),e1(1), . . . , eK−1(1),eK−1(2), . . . , eK−1(R)}.
The received data sequence through an additive white Gaussian noise (AWGN) channel is:Y={y0(1),y0(2), . . . , y0(R),y1(1), . . . , yK−1(1),yK−1(2), . . . , yK−1(R)}.
The equation yk(i)=ek(i)+nk(i) is introduced, in which the nk(i) is independent noise, and real Gaussian distribution of 0 expect and σ2 variance are adapted for the noise.
The output end performs decoding according to the maximum likelihood (ML) criterion, that is, the maximum likelihood sequence
      C    ^    =      arg    ⁢                  ⁢                  max                  C          ∈          Ω                    ⁢              ln        ⁢                                  ⁢                  Pr          ⁡                      (                          Y              ❘              C                        )                              is output as decode result. Ω is a collection of all the codes. It is assumed that the channel has no memory,
                              ln          ⁢                                          ⁢                      Pr            ⁡                          (                              Y                ❘                C                            )                                      =                              ∑                          i              ,              k                                ⁢                      ln            ⁢                                                  ⁢                                          Pr                ⁡                                  (                                                            y                      k                                              (                        i                        )                                                              ❘                                          e                      k                                              (                        i                        )                                                                              )                                            .                                                          (        1.        )            
The lnPr(Y|C) is defined as the path metric of an input sequence of the C. The
            μ      k        ⁡          (      C      )        =            ∑              i        =        1            R        ⁢          ln      ⁢                          ⁢              Pr        ⁡                  (                                    y              k                              (                i                )                                      ❘                          e              k                              (                i                )                                              )                    is defined as a branch metric. The probability density function of the noise is:
      p    ⁡          (                        y          k                      (            i            )                          ❘                  e          k                      (            i            )                              )        =            1                                    2            ⁢            π                          ⁢        σ              ⁢                  exp        ⁡                  [                                    -                              1                                  2                  ⁢                                      σ                    2                                                                        ⁢                                                                                                y                    k                                          (                      i                      )                                                        -                                      e                    k                                          (                      i                      )                                                                                                  2                                ]                    .      
The public items of the path are omitted and the branch metric can be simplified as follows.
                                          μ            k                    ⁡                      (            C            )                          =                              ∑                          i              =              1                        R                    ⁢                                    y              k                              (                i                )                                      ⁢                                          e                k                                  (                  i                  )                                            .                                                          (        2.        )            The output of the ML decode is
      C    ^    =      arg    ⁢                  ⁢                  max                  C          ∈          Ω                    ⁢                        ∑                      k            =            0                                K            -            1                          ⁢                                            μ              k                        ⁡                          (              C              )                                .                    
In the prior art, the Viterbi algorithm is generally used to achieve the maximum likelihood decoding of a convolutional code. At a moment t=0, an initial cumulative path metric value is set for each state. If the initial state is undetermined, the cumulative path metric value of each state at the initial moment is the same. At a moment t=k, merely two branches point to the same state sn at the moment t=k+1, and the cumulative metric value of the two paths are equal to the cumulative metric value of a state at a previous moment plus the current branch metric value. At a moment t=k+1, the two paths pointing to the sn are compared, and the path having a larger path metric value is selected as a survivor path, and the metric value thereof is considered as a cumulative path metric value of a state sn at a new moment. An add-compare-select process of the Viterbi decoding algorithm is shown in FIG. 2. After the add-compare-select process is completed, one of the survivor paths of all states, which has the maximum cumulative path metric value, is selected as a backtracking path, so as to obtain the decoding output.
As for tail-biting convolutional code, the states of the coder at the first moment and the end moment are the same, and this characteristic may be used during decoding to improve the performance. A transport block (TB Block) is corresponding to a data receiving block. Because the first state and the end state of the coder are the same, a transport block may be repeated L times, that is, L transport blocks are connected in series to decode a long sequence. Among the decoding methods in the prior art, taking L=3 as an example, when decoding, three transport blocks are used to calculate the survivor path. However, when backtracking is finished, only the decoding data of the second transport block serves as decoding output. The first transport block may be considered to provide a correct initial state for the second transport block, and the third transport block may be considered to provide a correct backtracking state for the second transport block.
The prior art has at least the following problems. Decoding is performed through 3 transport blocks connected in series, and the backtracking state is determined according to the cumulative path metric value, so that accuracy of determining the backtracking state is not high, and the decoding delay is big.